iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
佛心分享-刷題不只是刷題

8月 LeetCode Daily 見聞錄系列 第 5

[8/5] 2053. Kth Distinct String in an Array

  • 分享至 

  • xImage
  •  

Easy
Related Topics: Array / Hash Table / String / Counting
LeetCode Source

解題想法

透過一個 hash map 來計算每個 string 出現的次數

之後透過這個 hash map 藉由 arr 的值之順序 access hash map

判斷 hash map 的 value 為一時紀錄 count

count 值跟 k 相同時回傳當前 hash map 的 key 值

若沒找到則會回傳預設 "" 空字串

Complexity

Time Complexity: O(n)
Space Complexity: O(n)

Python

class Solution:
    def kthDistinct(self, arr: List[str], k: int) -> str:
        dict = {}

        for i in arr:
            if i in dict:
                dict[i] += 1
            else:
                dict[i] = 1

        count = 0

        for key, val in dict.items():
            if val == 1:
                count += 1
                if count == k:
                    return key
        return ""

C++

class Solution {
public:
    string kthDistinct(vector<string>& arr, int k) {
        unordered_map<string, int> mp;
        int count = 0;

        for (auto i : arr) {
            auto it = mp.find(i);
            if (it != mp.end()) 
                mp[i] += 1;
            else
                mp[i] = 1;
        }

        for (int i = 0; i < arr.size(); i++) {
            if (mp[arr[i]] == 1) {
                count += 1;
                if (count == k)
                    return arr[i];
            }
        }
        return "";
    }
};

上一篇
[8/4] 1508. Range Sum of Sorted Subarray Sums
下一篇
[8/6] 3016. Minimum Number of Pushes to Type Word II
系列文
8月 LeetCode Daily 見聞錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言